package com.yiyibook.mapper;

import com.yiyibook.controller.vo.OutOrderVO;
import com.yiyibook.entity.OrderHead;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 订单头 Mapper
 *
 * @author yi.wu
 * @date 2019-10-14
 */
@Mapper
public interface OrderHeadMapper {

    /**
     * 添加订单头
     * @param record 订单头对象
     * @return 添加的记录数
     * @author yi.wu
     */
    int insert(OrderHead record);

    /**
     * 添加订单头并返回主键
     * @param record 订单头对象
     * @return int 返回的记录数
     * @author yi.wu
     * @date 2019-10-14
     */
    int insertSelective(OrderHead record);

    /**
     * 更新订单头
     * @param record 订单头对象
     * @return 更新的记录数
     * @author yi.wu 2019-10-14
     */
    int updateByPrimaryKeySelective(OrderHead record);

    /**
     * 更新订单头 （允许有字段为null值）
     * @param record 订单头对象
     * @return 更新的记录数
     * @author yi.wu 2019-10-14
     */
    int updateByPrimaryKey(OrderHead record);

    /**
     * 查询最后一个订单头
     * @return com.yiyibook.entity.OrderHead 订单头对象
     * @author yi.wu 2019-10-14
     */
    OrderHead selectLast();

    /**
     * 功能描述:
     * 〈查询出所有订单信息〉
     * @return List<OrderHead>
     * @author xun.gong@hand-china.com
     * @date 2019/10/21
     */
    List<OrderHead> selectAll();

    /**
     * 功能描述:
     * 〈根据订单头查询信息〉
     * @param orderHeadId 订单头ID
     * @return OutOrderVO
     * @author xun.gong@hand-china.com
     * @date 2019/10/22
     */
    List<OutOrderVO> selectByHeadId(@Param("orderHeadId") Integer orderHeadId);

    /**
     * 功能描述:
     * 〈根据主键〉
     * @param orderHeadId 订单头ID
     * @return OrderHead
     * @author xun.gong@hand-china.com
     * @date 2019/10/22
     */
    OrderHead selectByPrimaryKey(@Param("orderHeadId") Integer orderHeadId);

    /**
      * 条件查询订单头
      * @param orderCondition 查询条件
      * @return java.util.List<com.yiyibook.entity.OrderHead> 订单集合
      * @author yi.wu 2019-11-08 13:45:20
      */
    List<OrderHead> selectByCondition(OrderHead orderCondition);
}